<?php


namespace app\back\model;

use app\common\Image;
use think\facade\Db;
use think\response\Json;
use \Exception;

class GoodsModel
{
    private static $_table = 'goods'; // 商品表
    private static $_cateTable = 'category'; // 分类表
    private static $_orgTable = 'organization'; // 组织表

    /**获取添加编辑额外信息(内部调用)
     * @param $info
     * @return Json|array
     */
    protected static function getOtherStatic($info)
    {
        try {
            // 获取商品分类
            $map = [
                ['admin_id', '=', $info['id']],
                ['status', '=', 1]
            ];
            $field = 'id,name,pid';
            $cateInfo = Db::table(self::$_cateTable)->where($map)->field($field)->select()->toArray();
            if (!$cateInfo) return jsonFail('未找到可用的分类');
            // 获取分拣中心 合作社
            $map = [
                ['admin_id', '=', $info['id']],
                ['status', '=', 1],
                ['type', 'in', [1,2]]
            ];
            $field = 'id,name,type';
            $orgInfos = Db::table(self::$_orgTable)->where($map)->field($field)->select()->toArray();
            if (!$orgInfos) return jsonFail('未找到可用的社区或合作社');
            $coopInfo = [];
            $centerInfo = [];
            foreach ($orgInfos as $item) {
                if ($item['type'] == 1) {
                    $coopInfo[] = $item;
                } else {
                    $centerInfo[] = $item;
                }
            }
            if ($coopInfo == []) return jsonFail('未找到可用的合作社');
            if ($centerInfo == []) return jsonFail('未找到可用的分拣中心');
            return ['cateInfo' => getTree($cateInfo), 'coopInfo' => $coopInfo, 'centerInfo' => $centerInfo];
        } catch (Exception $e) {
            return jsonFail('服务内部错误~');
        }
    }

    /**获取添加编辑额外信息
     * @param $info
     * @return Json
     */
    public static function getOther($info)
    {
        $rtn = self::getOtherStatic($info);
        if (is_array($rtn)) return jsonSuccess('获取成功', $rtn);
        return $rtn;
    }
}